import info.gridworld.actor.ActorWorld;
import info.gridworld.grid.UnboundedGrid;


/**
 * This class implements a GridWorld application that randomly inserts a number of Cells into an UnboundedGrid. It then allows
 * the user to interact with the Grid, inserting new Cells and running the cellular automation.
 * 
 * <p>Copyright (C) 2009 Drew Gallagher
 * 
 * <p>This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
 * 
 * <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 * 
 * <p>You should have received a copy of the GNU General Public License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 * 
 * @author Drew Gallagher
 * @version 1.0
 * @see Cell
 * @see UnboundedGrid
 * @see ActorWorld
 */
public class GameOfLife {
	
	/**
	 * The initial population of the Grid (500).
	 */
	public static final int INITIAL_POPULATION = 500;
	
	
	
	/**
	 * Runs the application.
	 * 
	 * @since 1.0
	 * @param args Required by Java.
	 */
	public static void main(String[] args) {
		LifeWorld world = new LifeWorld();
		for (int x = 0; x < INITIAL_POPULATION; x++) {
			world.add(new Cell());
		} // End Loop
		world.show();
	} // End void main

} // End class GameOfLife
